﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using BLL;
using System.Xml.Linq;
using System.Net.Mail;

public partial class UserControls_Contact : System.Web.UI.UserControl
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            LoadMail();
            //LoadSeo();
        }
    }

    string strFromMail = "";
    string strFromPass = "";
    string strToMail = "";
    string strDisplay = "Liên hệ - Học lái xe ô tô";

    private void LoadMail()
    {
        try
        {
            XElement xml = XElement.Load(MyConfig.serverPath + "Mail.xml");
            XElement mailFromName = xml.Descendants("MailFrom").Descendants("Name").First();
            XElement mailFromPass = xml.Descendants("MailFrom").Descendants("Pass").First();
            XElement mailToName = xml.Descendants("MailTo").Descendants("Name").First();
            strFromMail = mailFromName.Value;
            strFromPass = mailFromPass.Value;
            strToMail = mailToName.Value;
        }
        catch { }
    }

    //private void LoadSeo()
    //{
    //    try
    //    {
    //        //Load SEO
    //        ConfigBLL data = new ConfigBLL();
    //        var config = data.GetDefautl();

    //        description.Content = config.Description;
    //        copyright.Content = config.Copyright;
    //        author.Content = config.Author;
    //        keywords.Content = config.Keywords;
    //        ltContent.Text = HttpUtility.HtmlDecode(config.Contact);

    //        ltTitle.Text = "Liên hệ - " + config.Keywords;
    //    }
    //    catch { }
    //}

    public bool SendMail(string fromAddress, string fromPassWord, string fromDisplayName, string toAddress, string subject, string body)
    {
        //--Tạo mail -----------------------------------------------------|
        MailMessage msg = new MailMessage();
        msg.To.Add(toAddress);
        msg.From = new MailAddress(fromAddress, fromDisplayName,
            System.Text.Encoding.UTF8);
        msg.Subject = subject;
        msg.SubjectEncoding = System.Text.Encoding.UTF8;
        msg.Body = body;
        msg.BodyEncoding = System.Text.Encoding.UTF8;
        //--Cho phép gửi mã HTML trong mail ------------------------------|
        msg.IsBodyHtml = true;
        //--Độ ưu tiên của mail ------------------------------------------|
        msg.Priority = MailPriority.High;
        //--Chứng thực bao gồm username + password -----------------------|
        SmtpClient client = new SmtpClient();
        client.Credentials = new System.Net.NetworkCredential
        (fromAddress, fromPassWord);
        //--Cổng 587 của server SMTP Google để gửi mail-------------------|
        client.Port = 587;
        //--Địa chỉ server SMTP của google -------------------------------|
        client.Host = "smtp.gmail.com";
        //--Sử dụng mã hóa đường truyền SSL (Secure Sockets Layer)--------|
        client.EnableSsl = true;
        //--Bắt đầu quá trình gửi mail -----------------------------------|
        try { client.Send(msg); } //--Gửi mail--| 
        catch { return false; } //--Không thể gửi mail     
        return true; //--Gửi mail thành công
    }

    protected void btnSend_Click(object sender, EventArgs e)
    {
        LoadMail();
        if (txtName.Text == "")
        {
            Myfunction.ThongBao(ltThongBao, "Nhập họ tên ! ");
            return;
        }
        if (!Myfunction.isEmailValid(txtEmail.Text))
        {
            Myfunction.ThongBao(ltThongBao, "Nhập email không hợp lệ ! ");
            return;
        }
        if (txtTitle.Text == "")
        {
            Myfunction.ThongBao(ltThongBao, "Nhập tiêu đề ! ");
            return;
        }
        if (txtContent.Text == "")
        {
            Myfunction.ThongBao(ltThongBao, "Nhập nội dung ! ");
            return;
        }

        ContactBLL data = new ContactBLL();
        DAL.Contact contact = new DAL.Contact();
        contact.Address = txtAddress.Text;
        contact.Content = txtContent.Text;
        contact.DateSend = DateTime.Now;
        contact.Email = txtEmail.Text;
        contact.isRead = false;
        contact.Name = txtName.Text;
        contact.Phone = txtPhone.Text;
        contact.Title = txtTitle.Text;
        data.Add(contact);
        Myfunction.ThongBao(ltThongBao, "Liên hệ của bạn đã được gửi ! ");

        //Send To Mail
        string content = "<div style='margin-top: 10px'>";
        content += "<fieldset>";
        content += "<legend>Thông tin người liên hệ</legend>";
        content += "<table width='100%' cellspacing='0'>";
        content += "<tbody><tr>";
        content += "<td style='width: 100px; height: 30px;'>Họ tên :  </td><td>" + txtName.Text + "</td>";
        content += "</tr><tr><td style='height: 30px;'>Email :</td><td> " + txtEmail.Text + "</td>";
        content += "</tr><tr><td style='height: 30px;'>Phone : </td><td> " + txtPhone.Text + "</td></tr><tr>";
        content += "<td style='height: 30px;border-bottom:1px solid #017467; padding-bottom: 5px;'>Địa chỉ : </td>";
        content += "<td style='border-bottom:1px solid #017467'> " + txtAddress.Text + "</td>";
        content += "</tr><tr><td style='height: 30px; padding-top: 5px;'>Chi tiết liên hệ</td><td>&nbsp;</td>";
        content += "</tr><tr><td style=' height: 30px;'>Tiêu đề : </td><td> <b>" + txtTitle.Text + "</b></td>";
        content += "</tr><tr><td style='height: 30px;'>Ngày gửi : </td><td> <i>" + DateTime.Now.ToString() + "</i></td></tr>";
        content += "<tr><td valign='top' style='height: 60px;'><p>Nội dung : </p></td><td valign='top'>";
        content += "<p>" + txtContent.Text + "</p></td>";
        content += "</tr></tbody></table></fieldset></div>";
        SendMail(strFromMail, strFromPass, strDisplay, strToMail, txtTitle.Text, content);
        txtTitle.Text = "";
        txtPhone.Text = "";
        txtName.Text = "";
        txtEmail.Text = "";
        txtContent.Text = "";
        txtAddress.Text = "";
    }
}